новая целька#631
Conversation
📝 WalkthroughWalkthroughThis PR adds a new "teach a lesson" traitor objective that requires a teacher to make a specific target die at least once during the shift. The implementation includes two components tracking state, an entity system managing objective lifecycle through events, objective definitions with configuration, and Russian localization. ChangesTeach a Lesson Objective Implementation
Sequence DiagramsequenceDiagram
participant Teacher
participant System as TeachALessonConditionSystem
participant Target
participant TargetComponent
participant ConditionComponent as HasDied Flag
Teacher->>System: Objective assigned
System->>TargetComponent: Register teacher in Teachers set
Target->>System: Mob state changes to Dead
System->>TargetComponent: Iterate through Teachers
System->>ConditionComponent: Set HasDied = true per teacher
Teacher->>System: Request progress
System->>ConditionComponent: Check HasDied
ConditionComponent-->>Teacher: Report progress 1.0f
Estimated Code Review Effort🎯 3 (Moderate) | ⏱️ ~20 minutes Poem
🚥 Pre-merge checks | ✅ 3 | ❌ 2❌ Failed checks (1 warning, 1 inconclusive)
✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Warning Review ran into problems🔥 ProblemsGit: Failed to clone repository. Please run the Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
Content.Server/_CorvaxGoob/OfferItem/Objectives/TeachALessonConditionComponent.cs (1)
1-1: 💤 Low valueNamespace doesn't match the fork's folder convention.
The file lives under
_CorvaxGoob/OfferItem/Objectives, but the namespace isContent.Server._Starlight.Objectives— a leftover from the upstream port. The same mismatch exists inTeachALessonTargetComponent.csandTeachALessonConditionSystem.cs. Align the namespace with the fork's layout for consistency and discoverability.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@Content.Server/_CorvaxGoob/OfferItem/Objectives/TeachALessonConditionComponent.cs` at line 1, The namespace in TeachALessonConditionComponent.cs (and the related TeachALessonTargetComponent.cs and TeachALessonConditionSystem.cs) is wrong — it currently uses Content.Server._Starlight.Objectives; update the namespace to match the folder layout (Content.Server._CorvaxGoob.OfferItem.Objectives) so the types (TeachALessonConditionComponent, TeachALessonTargetComponent, TeachALessonConditionSystem) live in the correct namespace and are discoverable.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@Resources/Locale/ru-RU/prototypes/_corvaxgoob/traitor.ftl`:
- Line 4: The player-facing description string in the traitor.ftl entry (.desc)
is missing a comma before "что"; update the .desc value to insert a comma before
"что" so it reads "Убедитесь, что этот человек умрёт хотя бы раз за смену, он
знает, что натворил." (ensure the comma placement mirrors the style used on line
6 and adjust any punctuation spacing accordingly).
---
Nitpick comments:
In
`@Content.Server/_CorvaxGoob/OfferItem/Objectives/TeachALessonConditionComponent.cs`:
- Line 1: The namespace in TeachALessonConditionComponent.cs (and the related
TeachALessonTargetComponent.cs and TeachALessonConditionSystem.cs) is wrong — it
currently uses Content.Server._Starlight.Objectives; update the namespace to
match the folder layout (Content.Server._CorvaxGoob.OfferItem.Objectives) so the
types (TeachALessonConditionComponent, TeachALessonTargetComponent,
TeachALessonConditionSystem) live in the correct namespace and are discoverable.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 21623069-b119-49df-8ef8-7e8df73eb0e1
📒 Files selected for processing (7)
Content.Server/_CorvaxGoob/OfferItem/Objectives/TeachALessonConditionComponent.csContent.Server/_CorvaxGoob/OfferItem/Objectives/TeachALessonConditionSystem.csContent.Server/_CorvaxGoob/OfferItem/Objectives/TeachALessonTargetComponent.csResources/Locale/ru-RU/_CorvaxGoob/Objective/teach-a-lesson.ftlResources/Locale/ru-RU/prototypes/_corvaxgoob/traitor.ftlResources/Prototypes/_CorvaxGoob/Objectives/ObjectiveGroups.ymlResources/Prototypes/_CorvaxGoob/Objectives/Traitor.yml
| ent-BaseTeachALessonObjective = { ent-BaseTargetObjective } | ||
| .desc = { ent-BaseTargetObjective.desc } | ||
| ent-TeachRandomPersonObjective = { ent-BaseTraitorObjective } | ||
| .desc = Убедитесь, что этот человек умрёт хотя бы раз за смену. Он знает что натворил. |
There was a problem hiding this comment.
Missing comma in player-facing description.
Inconsistent with line 6 — "что" should be preceded by a comma.
✏️ Proposed fix
- .desc = Убедитесь, что этот человек умрёт хотя бы раз за смену. Он знает что натворил.
+ .desc = Убедитесь, что этот человек умрёт хотя бы раз за смену. Он знает, что натворил.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@Resources/Locale/ru-RU/prototypes/_corvaxgoob/traitor.ftl` at line 4, The
player-facing description string in the traitor.ftl entry (.desc) is missing a
comma before "что"; update the .desc value to insert a comma before "что" so it
reads "Убедитесь, что этот человек умрёт хотя бы раз за смену, он знает, что
натворил." (ensure the comma placement mirrors the style used on line 6 and
adjust any punctuation spacing accordingly).
Описание PR
добавлены цели "проучите ивана ивановича" и "проучите главу ивана ивановича". проще говоря нужно ОДИН раз хотя бы за смену убить определенного человека или главу. жив при этом человек будет или нет неважно (или важно, в любом случае лучше его в мед отдавать). иван иваныч это пример прост
кстати, это ПОРТ С ГУБОВ. ага
Почему / Баланс
таск
Технические детали
добавлена новая обж группа, 3 компача, все спизжено с губов
Медиа
не надо
Требования
Согласие с условиями
Критические изменения
Список изменений
🆑 benjamin
Summary by CodeRabbit
New Features
Documentation